import {
  PrimaryGeneratedColumn,
  Column,
  BaseEntity as BaseEntityOne,
} from 'typeorm';

export abstract class BaseEntity extends BaseEntityOne {
  @PrimaryGeneratedColumn()
  id: number;

  // 创建日期
  @Column({
    type: 'datetime',
    name: 'created_at',
    comment: '创建时间',
    default: () => 'CURRENT_TIMESTAMP',
  })
  createdAt: Date;

  // 更新日期
  @Column({
    type: 'datetime',
    name: 'updated_at',
    comment: '更新时间',
    default: () => 'CURRENT_TIMESTAMP',
    onUpdate: 'CURRENT_TIMESTAMP',
  })
  updatedAt: Date;

  // 删除日期
  @Column({
    type: 'datetime',
    name: 'deleted_at',
    comment: '删除日期',
    nullable: true,
  })
  deletedAt?: Date;

  // 删除标识（0 代表未删除 1 代表已删除）
  @Column({
    type: 'int',
    name: 'del_flag',
    comment: ' 删除标识(0 代表未删除 1 代表已删除)',
    default: 0,
  })
  delFlag: number;

  // 创建人
  @Column({
    type: 'bigint',
    name: 'created_by',
    comment: '创建人',
    nullable: true,
  })
  createdBy: number;

  // 更新人
  @Column({
    type: 'bigint',
    name: 'updated_by',
    comment: '更新人',
    nullable: true,
  })
  updatedBy: number;
}
